KDB+ একটি শক্তিশালী ইন-মেমরি ডাটাবেস সিস্টেম যা টাইম-সিরিজ ডেটা ম্যানিপুলেশন এবং বিশ্লেষণের জন্য বিশেষভাবে ডিজাইন করা হয়েছে। এটি সাধারণত ফাইনান্সিয়াল ডেটা, সেন্সর ডেটা, লগ ডেটা, ইত্যাদি বিশ্লেষণের জন্য ব্যবহৃত হয়। Q ভাষার মাধ্যমে KDB+ ডাটাবেসে টাইম-সিরিজ ডেটা খুব সহজে প্রক্রিয়াকরণ, বিশ্লেষণ, এবং ম্যানিপুলেশন করা সম্ভব।
এখানে Time-Series Data ম্যানিপুলেশন এর জন্য কিছু মৌলিক কৌশল এবং উদাহরণ দেখানো হবে:
১. টাইম-সিরিজ ডেটা তৈরি (Creating Time-Series Data)
KDB+ তে টাইম-সিরিজ ডেটা তৈরি করতে, আমরা সাধারণত datetime বা time ডেটা টাইপ ব্যবহার করি। টাইম-সিরিজ ডেটা সাধারণত date এবং time এর কম্বিনেশনে তৈরি হয়।
Example: Creating Time-Series Data
times: 2024.01.01 2024.01.02 2024.01.03
prices: 100 105 110
timeSeriesData: (times; prices)এখানে, times হল টাইম-স্ট্যাম্পের একটি তালিকা এবং prices হল সেই সময়ের সাথে সম্পর্কিত ডেটা (যেমন স্টক প্রাইস)। timeSeriesData হল একটি টেবিল যেখানে times এবং prices কলাম রয়েছে।
২. টাইম-সিরিজ ডেটা সিলেকশন (Time-Series Data Selection)
KDB+ তে টাইম-সিরিজ ডেটার উপর বিভিন্ন কুইরি এবং সিলেকশন অপারেশন করা যেতে পারে।
Example: Selecting Data Within a Time Range
select from timeSeriesData where times within 2024.01.02 2024.01.03এখানে, select কমান্ডটি times কলাম থেকে ২রা জানুয়ারি ২০২৪ এবং ৩রা জানুয়ারি ২০২৪ এর মধ্যে ডেটা সিলেক্ট করবে।
Example: Selecting Specific Time Data
select from timeSeriesData where times = 2024.01.02এখানে, select কমান্ডটি ২০২৪ সালের ২ জানুয়ারি তারিখের ডেটা সিলেক্ট করবে।
৩. টাইম-সিরিজ ডেটার উপর গড় (Average) হিসাব করা (Computing Average on Time-Series Data)
টাইম-সিরিজ ডেটার উপর গড় বা অন্য কোনো অ্যালগেব্রিক অপারেশন করতে Q ভাষায় খুব সহজ।
Example: Calculating Average
avgPrice: avg pricesএখানে, avg prices গড় প্রাইস হিসাব করবে।
Example: Calculating Average by Time Interval
select avg prices by date times from timeSeriesDataএখানে, select avg prices by date times কমান্ডটি times অনুযায়ী গড় প্রাইস বের করবে।
৪. টাইম-সিরিজ ডেটার পরিবর্তন (Change in Time-Series Data)
KDB+ এ টাইম-সিরিজ ডেটার পরিবর্তন, যেমন একদিনের পরিবর্তন বা গতির হিসাব করা সহজ।
Example: Calculating Day-to-Day Change
priceChange: diff pricesএখানে, diff prices প্রতিদিনের পরিবর্তন বা priceChange হিসাব করবে (প্রথম দিনের জন্য NaN হবে)।
৫. টাইম-সিরিজ ডেটার রিসাম্পলিং (Resampling Time-Series Data)
টাইম-সিরিজ ডেটার রিসাম্পলিং একটি সাধারণ কাজ। এটি বিভিন্ন টাইম ফ্রেমে ডেটা রিস্যাম্পল করতে ব্যবহৃত হয়, যেমন প্রতি ঘণ্টায়, প্রতি দিনের গড় বের করা।
Example: Resampling by Hour
resampledData: timeSeriesData where times within 2024.01.01 2024.01.02এখানে, আপনি টাইম-সিরিজ ডেটাকে একটি নির্দিষ্ট সময় ফ্রেম অনুযায়ী ফিল্টার করতে পারেন এবং তার পরবর্তী গড় বা সমীকরণ বের করতে পারেন।
৬. টাইম-সিরিজ ডেটায় গ্রুপিং (Grouping Time-Series Data)
টাইম-সিরিজ ডেটার মধ্যে গ্রুপিং করা, যেমন প্রতি ঘণ্টায় বা প্রতি দিনে গড় প্রাইস বের করা, খুবই সহজ।
Example: Grouping by Date
select avg prices by date times from timeSeriesDataএখানে, টাইম-সিরিজ ডেটাকে times অনুযায়ী গ্রুপ করা হচ্ছে এবং প্রতিটি গ্রুপের জন্য গড় prices বের করা হচ্ছে।
৭. টাইম-সিরিজ ডেটার উপর ডেল্টা (Delta on Time-Series Data)
টাইম-সিরিজ ডেটার মধ্যে নির্দিষ্ট সময়ের মধ্যে প্রাপ্ত মানের পরিবর্তন হিসাব করতে delta ব্যবহার করা হয়।
Example: Calculating Delta (Price Change)
deltaPrices: priceChange: delta pricesএখানে, delta prices হল টাইম-সিরিজ ডেটার মধ্যে দুটি ধারাবাহিক তারিখের মধ্যে মূল্য পরিবর্তন (প্রতি দিন) হিসাব করবে।
৮. টাইম-সিরিজ ডেটা ওভাল্যাপ (Time-Series Data Overlap)
কখনও কখনও টাইম-সিরিজ ডেটার মধ্যে একাধিক overlapping পিরিয়ড থাকতে পারে এবং এগুলিকে ম্যানিপুলেট করা হয়। KDB+ এ টাইম-সিরিজ ডেটা অ্যানালাইসিসের জন্য এটি একটি গুরুত্বপূর্ণ কৌশল।
Example: Overlap Calculation
overlapData: select sum prices by date times from timeSeriesDataএখানে, sum prices by date কমান্ডটি times এর মধ্যে overlapping অংশের জন্য প্রাইসের যোগফল বের করবে।
সারসংক্ষেপ
KDB+ এবং Q ভাষার মাধ্যমে টাইম-সিরিজ ডেটা ম্যানিপুলেশন খুবই শক্তিশালী এবং দ্রুত করা যায়। কিছু প্রধান অপারেশন হল:
- Data Selection:
select from table where times within range - Aggregation:
select avg prices by date - Changes:
diff prices - Grouping:
select avg prices by date - Resampling: টাইম ফ্রেম অনুযায়ী ডেটা রিস্যাম্পল করা
- Delta Calculations: প্রতিদিনের পরিবর্তন বের করা
KDB+ এর শক্তিশালী টাইম-সিরিজ বিশ্লেষণ ক্ষমতার কারণে এটি ফাইনান্স, সেন্সর ডেটা, এবং অন্যান্য দ্রুত পরিবর্তিত ডেটা বিশ্লেষণের জন্য আদর্শ সমাধান।
Read more